This invention relates to data conversion circuits that generate conversion data by an interpolation from output values output from a look-up table (LUT) that only stores data corresponding to combinations of representative levels of a set of input data. This invention also relates to methods of data conversion utilizing the interpolation.
In a data conversion circuit that utilizes a LUT, output data corresponding to combinations of a set of input data is stored in each address of the LUT. By supplying an address corresponding to the set of input data, the LUT outputs the output data stored in that address. Thus, the set of input data is converted to the output data corresponding to the set of input data.
In the data conversion circuit, not all of the output data corresponding to all the combinations of the set of input data are stored in the LUT. That is, in order to reduce required memory capacity, only the output data corresponding to combinations of representative levels, e.g., every one of fourth levels, of the set of input data is stored. Interpolations from the output data corresponding to combinations of the representative levels near the levels of the input data generates the output data corresponding to the combinations that are not stored in the LUT.
As an example of data conversion circuit utilizing a LUT, a liquid crystal display (LCD) apparatus according to Japanese laid-open patent No. 10-39837 (Reference 1) will be described.
In the LCD display apparatus disclosed in Reference 1, in order to improve the response of a liquid crystal display panel, a pixel-driving signal to be supplied to a LCD panel is converted using a LUT such that the level (tone) of the signal is over-driven.
In order to display a video image on a LCD panel, image data, which includes signals for driving pixels that makes up a frame, is successively supplied with a fixed interval. When the level of pixel-driving signal changes from a starting level in the previous frame to a target level in the current frame, the brightness of the pixel does not reach the value corresponding to the target level during the current frame, because the orientation of liquid crystal molecules cannot change rapidly. As a result, especially when displaying a moving image, the quality of the displayed image is low.
In order to improve the quality of the image, over-drive technique is employed. It will be assumed that the pixel-driving signal of a liquid crystal display panel has a resolution of 8 bits, or 256 signal levels, and that the level of pixel-driving signal changes from 10 in the previous frame to 100 in the current frame. In this case, for example, a converted, or a corrected pixel-driving signal with a signal level of 150, instead of 100, is supplied. Accordingly, the response of the liquid crystal display panel and the quality of the image displayed on the panel are improved.
In order to generate correction data, a LUT that stores correction values corresponding to various combinations of signal levels of the current-frame and the previous-frame pixel-driving signals is provided. The first data including the level of current-frame pixel-driving signal and the second data including the level of previous-frame pixel-driving signal are input to the LUT. The LUT then outputs the correction value or values corresponding to the specific combination of the signal levels. Specifically, the LUT stores the correction values in 2-dimensionally arranged cells, and the combination of the signal levels of the input data is used as the address to access the LUT so that the LUT outputs the correction value stored in the cell corresponding to the address.
When the level of the signal to drive a pixel in the current frame is the same as the level of the signal to drive the same pixel in the previous frame, no conversion, or correction, of the pixel-driving signal is required. When both levels of the previous-frame and of the current-frame signals are 100, for example, an uncorrected signal with the level of 100 should be supplied to the pixel. Thus, correction values indicating that no correction is made are stored in the cells arranged on the diagonal line (diagonal cells), which correspond to the situation where the levels of the current-frame and the previous-frame data are the same. For example, zeros are stored as the correction values in the diagonal cells.
On the other hand, correction values indicating positive corrections (i.e., increases of the signal levels) are stored in the cells arranged in the area on one side of the diagonal line. In the example explained above, when the level of pixel-driving signal increases from 10 in the previous-frame to 100 in the current-frame, the signal level is corrected to 150. That is, a positive correction with an amount of 50 levels is made. To realize this result, for example, a correction value of 50 is stored in the cell corresponding to the address (10, 100).
Furthermore, correction values indicating negative corrections (i.e., decreases of the signal levels) are stored in the cells arranged in the area on the other side of the diagonal line. Due to the non-linear response of the liquid crystal display panel, however, the amount of the negative correction is not necessarily the same as the amount of the positive correction, even when the input signal level changes toward the opposite direction with the same levels.
For example, when the signal level decreases from 100 in the previous-frame to 10 in the current-frame, the amount of negative correction is not necessarily equal to 50. Thus, the correction value stored in the cell corresponding to the address (100, 10) is not necessarily −50. In other words, the correction value stored in the cell corresponding to the address (100, 10) does not necessarily have the same absolute value as the correction value stored in the cell corresponding to the address (10, 100). Or, more generally, the amount of corrections indicated by the pair of correction values stored in a pair of cells arranged symmetrically on both sides of the diagonal line are not necessarily the same.
When the LUT only stores representative correction values corresponding to combinations of representative levels, the LUT outputs representative correction values stored in the cells surrounding the address corresponding to the combination of the signal levels. The correction value for the combination of the signal levels is then generated by an interpolation from the representative correction values. Even in this case, when the current-frame signal level and the previous-frame signal level are the same, or when the difference between the signal levels is small, the amount of correction should be small in order to maintain the continuity of the corrected signal.
In reality, however, when at least one of the signal levels of the set of input data is not equal to any of the representative levels and the difference between the signal levels is small, the surrounding cells includes one of the pairs of cells arranged symmetrically along both sides of the diagonal line. Accordingly, the correction value is generated by the interpolation using the representative correction values stored in the pair of cells arranged along both sides of the diagonal line.
As noted above, however, the representative correction values stored in the pair of cells arranged symmetrically on both sides of the diagonal line may indicate corrections toward opposite directions with different amounts. Thus, the correction value generated by the interpolation may be inadequate. That is, the generated correction value may indicate a relatively large amount of correction, even when the difference between the previous-frame and the current-frame signal levels is small. As a result, the converted data may lose continuity and the display quality may degrade.